const app = getApp();


//导入外部js脚本
const common = require("../../common.js");
const AC = require("./area_code.js");

Page({

  /**
   * 页面的初始数据
   */
  data: {
    author :app.globalData.author,
    list:[
      {"stuNo":"001","stuName":"张三"},
      {"stuNo":"002","stuName":"李四"},
      {"stuNo":"003","stuName":"王五"},
      {"stuNo":"004","stuName":"刘六"},
      {"stuNo":"005","stuName":"陈七"},
      ],
    weainfo: "",
    areaCode: 101280103,
    weaInfo: "天气实时",
    "list0": null,
    "list1": null,
    "list2": null,
    "pickedArray": [0,0,0],
    "indexArray": [0,0,0]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    var page = this;
    //填充三层选择器的列表数据
    page.setData({list0: AC.getAreaList(-1)});
    page.setData({list1: AC.getAreaList(page.data.list0[0].areaId)});
    page.setData({list2: AC.getAreaList(page.data.list1[0].areaId)});
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
    //查询气象信息
    query: function() {
      var page = this;  //用变量page指向当前页面实例
      let code = this.data.areaCode;
      let url = "http://t.weather.sojson.com/api/weather/city/" + code;

      //发起http请求
      wx.request({
        url: url,
        success: function(res){
          let httpCode = res.statusCode;
          if(httpCode == 200){  //状态码200表示访问结果正常
            let text = JSON.stringify(res,null,2);
            //console.info("返回结果：" + text);
            let cityInfo = res.data.cityInfo;
            let weather = res.data.data;
            let weainfo = cityInfo.city + "，" + weather.wendu + "℃，发布时间：" + cityInfo.updateTime;
            page.setData({weainfo,list:weather.forecast});
          }else{
            app.alert("访问出错，状态码：" + httpCode)
          }
        },
        fail: function(err){
          console.error("访问失败：" + res);
        },
        complete: function(){
          console.log("http请求结束");
        }
      });
      console.log("查询气象" + Math.random);
    },
    //捕获文本框内容的输入
    inputText: function(evt){
      let id = evt.target.id; //获取事件源的id属性值
      let text = evt.detail.value; //获取事件源里的值
      this.setData({[id]:text});
      console.log(id + "# " + text);
    },
    //捕获下拉选择器的选项位置发生变化时
  areaChange: function(evt) {
    const values = evt.detail.value; //选择器组的状态值（这是一个数组）
    let iArray = this.data.indexArray; //记录三个选择器的选中位置
    //判断是哪个选择器的选中位置发生变化
    let tfs = [false,false,false];
    for(let i=0; i<tfs.length; i++){
      tfs[i] = iArray[i]!=values[i];
    }
    if(tfs[0]){ //第0个变时，填充第1、2个
      this.setData({list1: AC.getAreaList(this.data.list0[values[0]].areaId)});
      this.setData({list2: AC.getAreaList(this.data.list1[values[1]].areaId)});
    }else if(tfs[1]){ //第1个变时，填充第2个
      this.setData({list2: AC.getAreaList(this.data.list1[values[1]].areaId)});
    }else if(tfs[2]){
      ;
    }
    //下面取出被选中项的地区气象代码
    let code = "";
    let name = "";
    if(this.data.list2.length > 0){
      code = this.data.list2[values[2]].code;
      name = this.data.list2[values[2]].areaName;
    }else{
      code = this.data.list1[values[1]].code;
      name = this.data.list1[values[1]].areaName;
    }
    console.log(code + ' : ' + name);
    this.setData({areaCode: code}); //将选中的气象代码保存到areaCode，准备查询
    //保存三级选择器的当前索引
    iArray[0] = values[0];
    iArray[1] = values[1];
    iArray[2] = values[2];
  }
});